The present disclosure relates generally to managing the logging of messages (e.g., error messages) produced during the execution of processes on a computer. More specifically, techniques (e.g., systems, methods, and computer-readable media) are disclosed for the management and processing of log data for multiple processes, and for the analysis of messages that arise during execution of those processes.
For example, errors frequently arise during the execution of processes on a computer. Some errors can be serious (e.g., errors that halt the execution of the processes or disrupt other processes on a computer system), while other errors may persist undetected and cause problems at a later point. In either case, errors can be difficult to diagnose and an exorbitant amount of computing resources may be used to identify an error and its underlying cause for resolution. In order to diagnose these errors, many computer systems and/or computing environments (e.g., operating systems or applications) may generate error messages associated with those errors and store those error messages in log files that are stored locally on the computer system.
However, with the increasing prevalence of distributed computing environments (e.g. an enterprise computer system or a cloud computer system), where tasks or execution threads associated with the same application may be performed across multiple components of the distributed computing architecture, the use of local log files makes it costly and difficult to effectively diagnose the errors. For instance, each component in a distributed computing architecture may have to create its own log files on a local machine. Since writing to log files is generally slow and consumes system resources, the processing of multiple log files would utilize a significant amount of resources across all of the components. This large collection of log files is difficult to maintain and parse through in order to identify specific problems, and it is even more difficult to diagnose those problems when multiple threads are writing error messages to the same log file. Furthermore, the large collection of log files introduces the challenge of performing any queries or analytics on the error messages contained in the log files. As a result, there exists a need for effective message logging and diagnostics for processes being performed across multiple components, especially in the context of distributed computing.